home *** CD-ROM | disk | FTP | other *** search
/ Deutsche Edition 1 / Deutsche Edition 1.iso / amok / amok_lha / amok56.lha / TurboFiles_V2.0 / SpeedCheck.mod < prev    next >
Text File  |  1993-08-15  |  4KB  |  191 lines

  1. MODULE SpeedCheck;
  2. IMPORT TF:TurboFiles,
  3.        FS:FileSystem,
  4.        TS:TimerSupport,
  5.        Timer,
  6.        Strings,
  7.        SYSTEM,
  8.        Break,
  9.        io;
  10.  
  11. CONST
  12.   Write=TRUE;
  13.   ReadOnly=FALSE;
  14.  
  15. VAR
  16.   time:Timer.TimeVal;
  17.   f:TF.File;
  18.   file:FS.File;
  19.   c:CHAR;
  20.   l:LONGINT;
  21.   i,size:LONGINT;
  22.   bufferSize:LONGINT;
  23.   readName,writeName:ARRAY 80 OF CHAR;
  24.  
  25.   PROCEDURE WriteTime(text:ARRAY OF CHAR);
  26.   (* $CopyArrays- *)
  27.   BEGIN
  28.     TS.ReadClock(time);
  29.     io.WriteString(text);
  30.     io.Write(':');
  31.     l:=Strings.Length(text);
  32.     WHILE l<26 DO
  33.       io.Write(' ');
  34.       INC(l);
  35.     END;
  36.     TS.WriteTime(time);
  37.   END WriteTime;
  38.  
  39. BEGIN
  40.   io.WriteString('\nTurboFiles vs. FileSystem\n');
  41.   io.WriteString('~~~~~~~~~~~~~~~~~~~~~~~~~~\n');
  42.   io.WriteString('File for reading: ');
  43.   io.ReadString(readName);
  44.   io.WriteString('File for writing: ');
  45.   io.ReadString(writeName);
  46.  
  47.   io.WriteString('BufferSize for TurboFiles: ');
  48.   IF NOT io.ReadInt(bufferSize) THEN
  49.     io.WriteString('Default = 1024\n');
  50.     bufferSize:=1024
  51.   END;
  52.   IF TF.Exists(readName,size) THEN
  53.     io.WriteString('FileSize: ');
  54.     io.WriteInt(size,8);
  55.     io.WriteLn;
  56.   ELSE
  57.     io.WriteString('File not found\n');
  58.     HALT(0);
  59.   END;
  60.   io.WriteLn;
  61.  
  62.   io.WriteString('Reading single Characters using ReadChar()\n');
  63.   TS.StartClock;
  64.   IF TF.Open(f,readName,bufferSize,TF.oldFile) THEN
  65.     WHILE TF.ReadChar(f,c) DO END;
  66.     WriteTime('TurboFiles.ReadChar()');
  67.     IF TF.Close(f) THEN END;
  68.   END;
  69.  
  70.   TS.StartClock;
  71.   IF FS.Open(file,readName,ReadOnly) THEN
  72.     WHILE FS.ReadChar(file,c) DO END;
  73.     WriteTime('FileSystem.ReadChar()');
  74.     IF FS.Close(file) THEN END;
  75.   END;
  76.   io.WriteLn;
  77.  
  78.  
  79.   io.WriteString('Reading LONGINTs using ReadBytes()=ReadBlock()\n');
  80.   TS.StartClock;
  81.   IF TF.Open(f,readName,bufferSize,TF.oldFile) THEN
  82.     WHILE TF.ReadBytes(f,SYSTEM.ADR(l),SYSTEM.SIZE(l))>0 DO END;
  83.     WriteTime('TurboFiles.ReadBytes()');
  84.     IF TF.Close(f) THEN END;
  85.   END;
  86.  
  87.   TS.StartClock;
  88.   IF FS.Open(file,readName,ReadOnly) THEN
  89.     WHILE FS.ReadBlock(file,SYSTEM.ADR(l),SYSTEM.SIZE(l)) DO END;
  90.     WriteTime('FileSystem.ReadBlock()');
  91.     IF FS.Close(file) THEN END;
  92.   END;
  93.   io.WriteLn;
  94.  
  95.  
  96.   io.WriteString('Reading LONGINTs using Read()\n');
  97.   TS.StartClock;
  98.   IF TF.Open(f,readName,bufferSize,TF.oldFile) THEN
  99.     WHILE TF.Read(f,l) DO END;
  100.     WriteTime('TurboFiles.Read()');
  101.     IF TF.Close(f) THEN END;
  102.   END;
  103.  
  104.   TS.StartClock;
  105.   IF FS.Open(file,readName,ReadOnly) THEN
  106.     WHILE FS.Read(file,l) DO END;
  107.     WriteTime('FileSystem.Read()');
  108.     IF FS.Close(file) THEN END;
  109.   END;
  110.   io.WriteLn;
  111.  
  112.  
  113.   io.WriteString('Writing single Characters using WriteChar()\n');
  114.   TS.StartClock;
  115.   IF TF.Open(f,writeName,bufferSize,TF.newFile) THEN
  116.     i:=0;
  117.     WHILE i<size DO
  118.       IF TF.WriteChar(f,c) THEN END;
  119.       INC(i);
  120.     END;
  121.     WriteTime('TurboFiles.WriteChar()');
  122.     IF TF.Close(f) THEN END;
  123.   END;
  124.  
  125.   TS.StartClock;
  126.   IF FS.Open(file,writeName,Write) THEN
  127.     i:=0;
  128.     WHILE i<size DO
  129.       IF FS.WriteChar(file,c) THEN END;
  130.       INC(i);
  131.     END;
  132.     WriteTime('FileSystem.WriteChar()');
  133.     IF FS.Close(file) THEN END;
  134.   END;
  135.   io.WriteLn;
  136.  
  137.  
  138.   io.WriteString('Writing LONGINTSs using WriteBytes()=WriteBlock()\n');
  139.   TS.StartClock;
  140.   IF TF.Open(f,writeName,bufferSize,TF.newFile) THEN
  141.     i:=0;
  142.     WHILE i<size DO
  143.       IF TF.WriteBytes(f,SYSTEM.ADR(l),SYSTEM.SIZE(l)) THEN END;
  144.       INC(i,4);
  145.     END;
  146.     WriteTime('TurboFiles.WriteBytes()');
  147.     IF TF.Close(f) THEN END;
  148.   END;
  149.  
  150.   TS.StartClock;
  151.   IF FS.Open(file,writeName,Write) THEN
  152.     i:=0;
  153.     WHILE i<size DO
  154.       IF FS.WriteBlock(file,SYSTEM.ADR(l),SYSTEM.SIZE(l)) THEN END;
  155.       INC(i,4);
  156.     END;
  157.     WriteTime('FileSystem.WriteBlock()');
  158.     IF FS.Close(file) THEN END;
  159.   END;
  160.   io.WriteLn;
  161.  
  162.  
  163.   io.WriteString('Writing LONGINTSs using Write()\n');
  164.   TS.StartClock;
  165.   IF TF.Open(f,writeName,bufferSize,TF.newFile) THEN
  166.     i:=0;
  167.     WHILE i<size DO
  168.       IF TF.Write(f,l) THEN END;
  169.       INC(i,4);
  170.     END;
  171.     WriteTime('TurboFiles.Write()');
  172.     IF TF.Close(f) THEN END;
  173.   END;
  174.  
  175.   TS.StartClock;
  176.   IF FS.Open(file,writeName,Write) THEN
  177.     i:=0;
  178.     WHILE i<size DO
  179.       IF FS.Write(file,l) THEN END;
  180.       INC(i,4);
  181.     END;
  182.     WriteTime('FileSystem.Write()');
  183.     IF FS.Close(file) THEN END;
  184.   END;
  185.   io.WriteLn;
  186.  
  187.   io.WriteLn;
  188. END SpeedCheck.
  189.  
  190.  
  191.